1. Field of the Invention
The present invention relates to real-time decoding and displaying of motion picture images. More specifically, the present invention relates to displaying decoded video frames in intraframe runs at times other than they would normally be displayed.
2. Background
Decoding real-time moving video imagery on computer systems poses a number of challenges to designers. Due to the lack of computational power of some processing and display systems required to decode and display such imagery in real-time, compromises must be made in order that near real-time decode and display can be achieved. Such comprises include reductions in frame size, resolution, frame speed, and/or frame display.
One prior approach to processing real-time video imagery is shown with reference to FIGS. 1 and 2. FIG. 1 illustrates a sequence of unprocessed or encoded frames, such as compressed frames, which is input to a video decoder, and the real-time periods at which each frame should be displayed. FIG. 2 illustrates the actual frames which are displayed after being processed in this manner, such as by a decoder, in one prior art implementation, and the times at which they are displayed.
For the purposes of this disclosure, each square in the figures represents a frame, and the notation I, P, or B refers to the type of frame. An I frame is known as a intraframe, or keyframe, and provides complete frame information. The data in each I frame is used to generate the data for the remainder of the frames, known as interframes, in each I-I, or intraframe, run (e.g. 100 of FIG. 1). It must be decoded. One type of interframe, the P frame, in the MPEG (Motion Pictures Experts Group) standard, refers to predicted frames, and contain prediction information from the preceding intraframe during the I-I run. A B frame, a bidirectionally-predicted interframe, uses both the preceding (I) and succeeding intraframe (I') in order to generate the decoded data for the B frame.
One prior art approach to frame decoding and display is shown in FIGS. 1 and 2. In these figures, it is assumed that the decoder does not have sufficient computational capacity to decode and display all of the frames N in real-time during the I-I run 100 shown in FIG. 1. Therefore, a compromise of frame rate or quality must be chosen. In the example of FIG. 2, frame rate is sacrificed. In this example, the I-I' run 100 shown in FIG. 1 comprises N frames which each should be displayed at equally-spaced intervals t. In this example, the decoder only has sufficient capacity to decode 3 interframes before it must start processing the next interframe I' which, as stated previously, must be decoded. During the interframe display period 200 shown in FIG. 2, therefore, the decoder displays only the frames P.sub.1, B.sub.2, and P.sub.3. In this prior art implementation, which is not atypical, the decoded interframes are displayed at intervals of t, the desired playback rate as specified in the encoded sequence 100.
Even though the frames which are able to be decoded within the allotted time are displayed at the specified intervals, because only three interframes P.sub.1, B.sub.2, and P.sub.3 are able to be decoded within the allotted time, there is a discontinuity of display between the display of the frames within the I-I' run 200 and the display of the following interframe I'. This discontinuity, a time period 210 of duration (N+1-3)t (the difference between the total number of frames N and the actual number of displayed frames three plus one multiplied by the interframe display period t) results in a freeze in the real-time display of the imagery until the display of the following interframe I'. This freeze of the last frame P.sub.3 and discontinuity 210 is readily discernible and is visually disturbing to a viewer of the displayed sequence.
Thus, improved methods/apparatus for displaying moving video imagery, such as in such as in intraframe or I-I runs, are required.